package com.czmh.etc.common.core.utils;

import java.util.UUID;

/**
 * @description：UUIDGenerator.java
 * @author： Seven.
 * Credited：2019年4月2日 上午11:56:11.
 * @version：1.0.0
 */
public class UUIDGenerator {
	public static String[] chars = new String[] { "a", "b", "c", "d", "e", "f",  
            "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",  
            "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",  
            "6", "7", "8", "9" };  
	  /**
	   * 本算法利用36个可打印字符，通过随机生成32位UUID，由于UUID都为十六进制，所以将UUID分成8组，
	   * 每4个为一组，然后通过模36操作，结果作为索引取出字符
	   * @return
	   */
	public static String generateShortUuid() {  
	    StringBuffer shortBuffer = new StringBuffer();  
	    String uuid = UUID.randomUUID().toString().replace("-", "");  
	    for (int i = 0; i < 8; i++) {  
	        String str = uuid.substring(i * 4, i * 4 + 4);  
	        int x = Integer.parseInt(str, 16);  
	        shortBuffer.append(chars[x % 0x24]);  
	    }  
	    return shortBuffer.toString();  
	  
	} 
	/**
	 * 获得一个UUID
	 * 
	 * @return String UUID
	 */
	public static String getUUID() {
		String s = UUID.randomUUID().toString();
		// 去掉“-”符号
		return s.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24);
	}

	/**
	 * 获得指定数目的UUID
	 * 
	 * @param number
	 *            int 需要获得的UUID数量
	 * @return String[] UUID数组
	 */
	public static String[] getUUID(int number) {
		if (number < 1) {
			return null;
		}
		String[] ss = new String[number];
		for (int i = 0; i < number; i++) {
			ss[i] = getUUID();
		}
		return ss;
	}

	public static void main(String[] args) {
		System.out.println(getUUID());
		System.out.println(getUUID().length());
//		String[] ss = getUUID(10);
//		for (int i = 0; i < ss.length; i++) {
//			System.out.println(ss[i]);
//		}
	}
}
